/* 
 javascript 执行递归的效率非常差
 下面是一个测试的例子
 计算斐波那契数列
 */
function fib(n) {
	if (n < 2) {
		return n;
	} else {
		return fib(n-1) + fib(n - 2);
	}
}

var start = new Date().getTime();
print(fib(50));  //  计算50居然耗时：151085 毫秒
print("耗时： " + (new Date().getTime() - start));

/**
 * 使用动态规划法来解斐波那契数列
 */
function dynFib(n) {
	var v = [];
	//  初始化一个数据为0的数组
	for (var i = 0; i <= n; i++) {
		v[i] = 0;
	}
	if (1 == n || 2 == n)
		return 1;
	else {
		v[1] = 1;
		v[2] = 2;
		for (var i = 3; i <= n; i++) {
			v[i] = v[i - 1] + v[i - 2];
		}
		return v[n-1];
	}
}

var start2 = new Date().getTime();
print(dynFib(50));  //  计算50居然耗时：151085 毫秒
print("动态法耗时： " + (new Date().getTime() - start2));
